﻿using System;
using TechTalk.SpecFlow;
using PruebaMVC.Controllers;
using PruebaMVC.Models;
using NUnit.Framework;
using System.Web.Mvc;

namespace PruebaMVC.Specs
{
    [Binding]
    public class HolaMundoSteps
    {
        UserModel model = new UserModel();
        HolaMundoController controller = new HolaMundoController();
        ViewResult result;
        
        [Given(@"que seteo el Id del usuario con (.*)")]
        public void GivenQueSeteoElIdDelUsuarioCon(int p0)
        {
            controller.setId(p0);       
        }
        
        [Given(@"seteo el nombre como ""(.*)""")]
        public void GivenSeteoElNombreComo(string p0)
        {
            controller.setName(p0);
        }
        
        [When(@"invoco a la vista")]
        public void WhenInvocoALaVista()
        {
            result = controller.Index() as ViewResult;
        }
        
        [Then(@"el resultado debe ser (.*) y ""(.*)"" por pantalla")]
        public void ThenElResultadoDebeSerYPorPantalla(int p0, string p1)
        {
            model = result.Model as UserModel;

            Assert.AreEqual(p0, model.UserId);
        }
    }
}
